package com.thb.pay.payment.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.thb.pay.db.entity.SuperEntity;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * <p>
 * 支付-产品表
 * </p>
 *
 * @author lucky
 * @since 2019-07-21
 */
@Data
@Accessors(chain = true)
@TableName("pay_product")
public class PayProduct extends SuperEntity<PayProduct> {

    private static final long serialVersionUID = 1L;

    /**
     * 产品名称
     */
    private String name;
    /**
     * 产品类型ID
     */
    private Long productTypeId;
    /**
     * 支付类型ID 【支付 0 、代付 1】
     */
    @NotNull(message = "payType.not.empty")
    private Integer payType;

    /**
     * 代理商费率,百分比
     */
    private BigDecimal agentRate;

    /**
     * 商户费率,百分比
     */
    private BigDecimal mchRate;

    /**
     * 通道模式,1-单独,2-轮询
     *
     * <p>[单独的情况下，需要指定channelTypeId、channelId、channelRuleId、channelAccountId]
     * [轮询的情况下，指定 pollParams]
     * </p>
     */
    private Integer channelMode;

    /**
     * 支付通道类型ID
     */
    private Long channelTypeId;

    /**
     * 支付通道ID
     */
    private Long channelId;

    /**
     * 通道风控规则ID
     */
    private Long channelRuleId;

    /**
     * 支付通道账户ID
     */
    private Long channelAccountId;

    /**
     * 轮询配置参数,json字符串
     *
     * <p>轮询配置参数,json字符串  ifMode==2 的时候必填 为 通道 channelId +  权重 weight  集合
     * eg: [{"channelId":1111,"weight":1},{"channelId":222,"weight":2}]</p>
     *
     */
    private String pollParams;

    /**
     * 状态,0-关闭,1-开启
     */
    private Integer status;


}
